package com.uncp.comisiondeadmision.seguridad.escuchadores;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

import com.uncp.comisiondeadmision.comprobantedepago.beans.PostulanteBean;
import com.uncp.comisiondeadmision.seguridad.beans.UsuarioSistemaBean;
import com.uncp.comisiondeadmision.util.MySqlDBConn;


public class ListenerAuditoria implements HttpSessionAttributeListener {
	
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
	
	String nomCompleto =  "";
	String tipo =  "";
	String fechaInicio = "";
	
    public void attributeRemoved(HttpSessionBindingEvent arg0) {
    
    	try {
			MySqlDBConn mysql = new MySqlDBConn();
			Connection conn = mysql.getConnection();

			String sql = "insert into auditoria values(null,?,?,?,?)";
			PreparedStatement pstm = conn.prepareStatement(sql);
			pstm.setString(1,nomCompleto);
			pstm.setString(2, fechaInicio );
			pstm.setString(3, sdf.format(new Date())+"");
			pstm.setString(4,tipo);

			pstm.executeUpdate();
			pstm.close();
			conn.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
	

    }

    public void attributeAdded(HttpSessionBindingEvent arg0) {
    	
    	HttpSession sesion = arg0.getSession();
    	
    	if (sesion.getAttribute("DATOS_USUARIO") != null) {
    		
			UsuarioSistemaBean b = (UsuarioSistemaBean) sesion.getAttribute("DATOS_USUARIO");
			
			nomCompleto = b.getStrNombres()+" "+b.getStrApePat()+" "+b.getStrApeMat();
			tipo =b.getStrTipo();
			fechaInicio = (sdf.format(new Date())).toString();
			

		}else if (sesion.getAttribute("DATOS_POSTULANTE") != null) {
			
			PostulanteBean b = (PostulanteBean) sesion.getAttribute("DATOS_POSTULANTE");
			
			nomCompleto = b.getStrNombres() + " "+b.getStrApepat()+" "+b.getStrApemat();
			tipo = "Postulante";
			fechaInicio = (sdf.format(new Date())).toString();
			
		}
    	
    }


    public void attributeReplaced(HttpSessionBindingEvent arg0) {

    }
	
}
